/* eslint-disable max-lines */
/* eslint-disable no-lonely-if */
/* eslint-disable curly */
import React from 'react';
import * as api from './api';
import routes from './routes';
import styles from './style.css';
import PropTypes from 'prop-types';
import {TABLE} from '../constants';
import {PERMISSION} from './constants';
import {saleOrderBusinessType} from '../Enum';
import {injectIntl, formatMessage} from './intl';
import {conventEnumValueToString} from '../utils';
import {Spin, Card, Button, Row, Col, Table} from 'antd';
import {hasPermissions, ListTypeCL} from './utils';
import WrappedPopconfirm from '../common/WrappedPopconfirm';
import DescriptionList from 'ant-design-pro/lib/DescriptionList';
import {Chart, Geom, Axis, Tooltip, Label, Legend, Guide} from 'bizcharts';
const format = num => (String(num)).replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,');
const yearArr = data => {
    if(data && data.length > 0)
        return data.map(d => Object.assign({}, d, {
            month: d.month,
            year: d.year.toString(),
            value: Number(d.value % 1 === 0 ? d.value : d.value.toFixed(2))
        }));
    return [];
};

class DetailPanel extends React.PureComponent {
    state = {
        isFetching: false,
        dddd: false,
        data: {},
        details: [],
        purchasePlan: [],
        salesTarget: [],
        saleRatio: []
    }
    componentDidMount() {
        this.getDetailInfo();
    }
    getDetailInfo = () => {
        this.setState({isFetching: true});
        api.getDetail(this.props.id)
            .then(res => {
                if(res.ok)
                    this.setState({
                        isFetching: false,
                        data: res.data,
                        details: res.data.details && res.data.details.length > 0 ? [
                            ...res.data.details,
                            {
                                id: '00000-000000-00000-000000-00000',
                                countryChineseName: formatMessage({
                                    id: 'detailPanel.totalEnd',
                                    defaultMessage: '合计：'
                                })
                            }
                        ] : [],
                        purchasePlan: yearArr(res.data.purchasePlan),
                        salesTarget: yearArr(res.data.salesTarget),
                        saleRatio: yearArr(res.data.saleRatio)
                    });
                else
                    this.setState(({
                        isFetching: false
                    }));
            });
    }
    // eslint-disable-next-line react/sort-comp
    onClickDetail = (key, details) => {
        this.setState({loading: true});
        if(key === 'abandon')
            api.batchAbandon({details}).then(res => {
                this.setState({loading: false});
                if(res.ok) this.props.successReturn();
            });
        else if(key === 'takeEffect')
            api.batchEffective({details}).then(res => {
                this.setState({loading: false});
                if(res.ok) this.props.successReturn();
            });
        else
            api.batchSalePlanOrder({details}).then(res => {
                this.setState({loading: false});
                if(res.ok) this.props.successReturn();
            });
    }
    chartsContent = (content, list) => (
        <Chart
            style={{fontSize: '12'}}
            padding={['7%', '10%', '20%']}
            height={400} data={content} scale={{month: {range: [0, 1]}}} forceFit>
            <Legend textStyle={{
                fill: '#404040', // 文本的颜色
                fontSize: '14', // 文本大小
            }}/>
            <Axis name="month" label={{textStyle: {
                fill: '#404040', // 文本的颜色
                fontSize: '14', // 文本大小
            }}}/>
            <Axis
                name="value"
                label={{
                    formatter: val => format(val),
                    textStyle: {
                        fill: '#404040', // 文本的颜色
                        fontSize: '14', // 文本大小
                    }
                }}/>
            <Tooltip
                crosshairs={{type: 'y'}}/>
            <Geom type="line" position="month*value" size={2} color={['year',
                list.length === 3
                    ? ['#438730', '#6A8ECA', '#E97E30']
                    : ['#6A8ECA', '#E97E30']]}>
                <Label
                    offset={15}
                    content="value"
                    textStyle={{
                        fill: '#404040',
                        textAlign: 'center',
                        fontSize: '14', // 文本大小
                    }}
                    position="start"/>
            </Geom>
            <Geom
                type="point"
                position="month*value"
                size={4}
                shape={'circle'}
                color={['year',
                    list.length === 3
                        ? ['#438730', '#6A8ECA', '#E97E30']
                        : ['#6A8ECA', '#E97E30']]}
                style={{
                    stroke: '#fff',
                    lineWidth: 1,
                }}/>
            <Guide>
                <Guide.Line top/>
            </Guide>
        </Chart>)
    render() {
        const {permissions, initEnumData} = this.props;
        const {data, details, saleRatio, salesTarget, purchasePlan} = this.state;
        const operations = [];
        const colorlist = [];
        if(saleRatio.length > 0)
            // eslint-disable-next-line array-callback-return
            saleRatio.map(item => {
                if(item.month === '1月')
                    colorlist.push(item);
            });
        if(hasPermissions(permissions, PERMISSION.takeEffect) && hasPermissions(data.options, PERMISSION.takeEffect))
            operations.push(<WrappedPopconfirm
                key="takeEffect"
                id={data.id}
                placement="topLeft"
                onConfirm={() => this.onClickDetail('takeEffect', [{
                    id: data.id,
                    rowVersion: data.rowVersion
                }])}
                title={formatMessage({
                    id: 'detailPanel.validate.takeEffect',
                    defaultMessage: '是否确认生效？'
                })}>
                <Button key="takeEffect" size="small">{
                    formatMessage({
                        id: 'detailPanel.takeEffect',
                        defaultMessage: '生效'
                    })
                }</Button>
            </WrappedPopconfirm>);
        if(hasPermissions(permissions, PERMISSION.abandon) && hasPermissions(data.options, PERMISSION.abandon))
            operations.push(<WrappedPopconfirm
                key="abandon"
                id={data.id}
                placement="topLeft"
                onConfirm={() => this.onClickDetail('abandon', [{
                    id: data.id,
                    rowVersion: data.rowVersion
                }])}
                title={formatMessage({
                    id: 'detailPanel.validate.abandon',
                    defaultMessage: '是否确认作废？'
                })}>
                <Button key="abandon" size="small">{
                    formatMessage({
                        id: 'detailPanel.abandon',
                        defaultMessage: '作废'
                    })
                }</Button>
            </WrappedPopconfirm>);
        if(hasPermissions(permissions, PERMISSION.salePlanOrder) && hasPermissions(data.options, PERMISSION.salePlanOrder))
            operations.push(<WrappedPopconfirm
                key="salePlanOrder"
                id={data.id}
                placement="topLeft"
                onConfirm={() => this.onClickDetail('salePlanOrder', [{
                    id: data.id,
                    rowVersion: data.rowVersion
                }])}
                title={formatMessage({
                    id: 'detailPanel.validate.salePlanOrder',
                    defaultMessage: '是否确认生成滚动计划？'
                })}>
                <Button key="salePlanOrder" size="small">{
                    formatMessage({
                        id: 'detailPanel.salePlanOrder',
                        defaultMessage: '生成滚动计划'
                    })
                }</Button>
            </WrappedPopconfirm>);
        const renderContent = (text, row, index, val) => index === details.length - 1 ? val : text;
        const cbucolums = [
            {
                title: formatMessage({
                    id: 'detailPanel.colums.county',
                    defaultMessage: '国家'
                }),
                dataIndex: 'countryChineseName',
                render: (value, row, index) => {
                    const obj = {
                        children: value,
                        props: {},
                    };
                    if(index === details.length - 1)
                        obj.props.colSpan = 7;
                    return obj;
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.dealerCode',
                    defaultMessage: '总代'
                }),
                dataIndex: 'dealerCode',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.column.businessType',
                    defaultMessage: '业务类型'
                }),
                dataIndex: 'businessType',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: conventEnumValueToString(saleOrderBusinessType, text),
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.newCarLaunchTime',
                    defaultMessage: '新款上市计划时间'
                }),
                dataIndex: 'newCarLaunchTime',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.modelCode',
                    defaultMessage: '车型'
                }),
                dataIndex: 'versionName',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.materialGroupKDBOMCode',
                    defaultMessage: '物料组号或KDBOM编号'
                }),
                dataIndex: 'materialGroupKDBOMCode',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.newModel',
                    defaultMessage: '是否新车型'
                }),
                dataIndex: 'newModel',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text ? formatMessage({
                            id: 'detailPanel.colums.yes',
                            defaultMessage: '是'
                        }) : formatMessage({
                            id: 'detailPanel.colums.no',
                            defaultMessage: '否'
                        }),
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.CBUAnnualBeginningInventory',
                    defaultMessage: '整车年度期初总库存'
                }),
                dataIndex: 'cbuAnnualBeginningInventory',
                render: (t, r, i) => renderContent(t, r, i, data.sumCBUAnnualBeginningInventory)
            }];
        const kdcolums = [
            {
                title: formatMessage({
                    id: 'detailPanel.colums.county',
                    defaultMessage: '国家'
                }),
                dataIndex: 'countryChineseName',
                render: (value, row, index) => {
                    const obj = {
                        children: value,
                        props: {},
                    };
                    if(index === details.length - 1)
                        obj.props.colSpan = 7;
                    return obj;
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.dealerCode',
                    defaultMessage: '总代'
                }),
                dataIndex: 'dealerCode',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.column.businessType',
                    defaultMessage: '业务类型'
                }),
                dataIndex: 'businessType',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: conventEnumValueToString(saleOrderBusinessType, text),
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.newCarLaunchTime',
                    defaultMessage: '新款上市计划时间'
                }),
                dataIndex: 'newCarLaunchTime',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.modelCode',
                    defaultMessage: '车型'
                }),
                dataIndex: 'versionName',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.materialGroupKDBOMCode',
                    defaultMessage: '物料组号或KDBOM编号'
                }),
                dataIndex: 'materialGroupKDBOMCode',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text,
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.newModel',
                    defaultMessage: '是否新车型'
                }),
                dataIndex: 'newModel',
                render: (text, row, index) => {
                    if(index === details.length - 1)
                        return {props: {colSpan: 0}};
                    return {
                        children: text ? formatMessage({
                            id: 'detailPanel.colums.yes',
                            defaultMessage: '是'
                        }) : formatMessage({
                            id: 'detailPanel.colums.no',
                            defaultMessage: '否'
                        }),
                    };
                }
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.CBUAnnualBeginningInventory',
                    defaultMessage: '整车年度期初总库存'
                }),
                dataIndex: 'cbuAnnualBeginningInventory',
                render: (t, r, i) => renderContent(t, r, i, data.sumCBUAnnualBeginningInventory)
            }, {
                title: formatMessage({
                    id: 'detailPanel.colums.KDAnnualBeginningInventory',
                    defaultMessage: 'KD工厂年度期初库存'
                }),
                dataIndex: 'kdAnnualBeginningInventory',
                render: (t, r, i) => renderContent(t, r, i, data.sumKDAnnualBeginningInventory)
            }
        ];
        const cbu = [{
            title: formatMessage({
                id: 'detailPanel.colums.n1SalesTargetQuantity',
                defaultMessage: '1月实销目标数'
            }),
            dataIndex: 'n1SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1PurchasePlanQuantity',
                defaultMessage: '1月提车计划数'
            }),
            dataIndex: 'n1PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1DeliveryPlanQuantity',
                defaultMessage: '1月发货计划数'
            }),
            dataIndex: 'n1DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1CBUReceiveQuantity',
                defaultMessage: '1月新到货数'
            }),
            dataIndex: 'n1CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1OnTheWayNum',
                defaultMessage: '1月在途数'
            }),
            dataIndex: 'n1OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1CBUEndingInventory',
                defaultMessage: '1月末整车可销库存数'
            }),
            dataIndex: 'n1CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1TotalInventory',
                defaultMessage: '1月末总库存数'
            }),
            dataIndex: 'n1TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1StoreSaleRatio',
                defaultMessage: '1月总存销比'
            }),
            dataIndex: 'n1StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2SalesTargetQuantity',
                defaultMessage: '2月实销目标数'
            }),
            dataIndex: 'n2SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2PurchasePlanQuantity',
                defaultMessage: '2月提车计划数'
            }),
            dataIndex: 'n2PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2DeliveryPlanQuantity',
                defaultMessage: '2月发货计划数'
            }),
            dataIndex: 'n2DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2CBUReceiveQuantity',
                defaultMessage: '2月新到货数'
            }),
            dataIndex: 'n2CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2OnTheWayNum',
                defaultMessage: '2月在途数'
            }),
            dataIndex: 'n2OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2CBUEndingInventory',
                defaultMessage: '2月末整车可销库存数'
            }),
            dataIndex: 'n2CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2TotalInventory',
                defaultMessage: '2月末总库存数'
            }),
            dataIndex: 'n2TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2StoreSaleRatio',
                defaultMessage: '2月总存销比'
            }),
            dataIndex: 'n2StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3SalesTargetQuantity',
                defaultMessage: '3月实销目标数'
            }),
            dataIndex: 'n3SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3PurchasePlanQuantity',
                defaultMessage: '3月提车计划数'
            }),
            dataIndex: 'n3PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3DeliveryPlanQuantity',
                defaultMessage: '3月发货计划数'
            }),
            dataIndex: 'n3DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3CBUReceiveQuantity',
                defaultMessage: '3月新到货数'
            }),
            dataIndex: 'n3CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3OnTheWayNum',
                defaultMessage: '3月在途数'
            }),
            dataIndex: 'n3OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3CBUEndingInventory',
                defaultMessage: '3月末整车可销库存数'
            }),
            dataIndex: 'n3CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3TotalInventory',
                defaultMessage: '3月末总库存数'
            }),
            dataIndex: 'n3TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3StoreSaleRatio',
                defaultMessage: '3月总存销比'
            }),
            dataIndex: 'n3StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4SalesTargetQuantity',
                defaultMessage: '4月实销目标数'
            }),
            dataIndex: 'n4SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4PurchasePlanQuantity',
                defaultMessage: '4月提车计划数'
            }),
            dataIndex: 'n4PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4DeliveryPlanQuantity',
                defaultMessage: '4月发货计划数'
            }),
            dataIndex: 'n4DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4CBUReceiveQuantity',
                defaultMessage: '4月新到货数'
            }),
            dataIndex: 'n4CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4OnTheWayNum',
                defaultMessage: '4月在途数'
            }),
            dataIndex: 'n4OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4CBUEndingInventory',
                defaultMessage: '4月末整车可销库存数'
            }),
            dataIndex: 'n4CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4TotalInventory',
                defaultMessage: '4月末总库存数'
            }),
            dataIndex: 'n4TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4StoreSaleRatio',
                defaultMessage: '4月总存销比'
            }),
            dataIndex: 'n4StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5SalesTargetQuantity',
                defaultMessage: '5月实销目标数'
            }),
            dataIndex: 'n5SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5PurchasePlanQuantity',
                defaultMessage: '5月提车计划数'
            }),
            dataIndex: 'n5PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5DeliveryPlanQuantity',
                defaultMessage: '5月发货计划数'
            }),
            dataIndex: 'n5DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5CBUReceiveQuantity',
                defaultMessage: '5月新到货数'
            }),
            dataIndex: 'n5CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5OnTheWayNum',
                defaultMessage: '5月在途数'
            }),
            dataIndex: 'n5OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5CBUEndingInventory',
                defaultMessage: '5月末整车可销库存数'
            }),
            dataIndex: 'n5CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5TotalInventory',
                defaultMessage: '5月末总库存数'
            }),
            dataIndex: 'n5TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5StoreSaleRatio',
                defaultMessage: '5月总存销比'
            }),
            dataIndex: 'n5StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6SalesTargetQuantity',
                defaultMessage: '6月实销目标数'
            }),
            dataIndex: 'n6SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6PurchasePlanQuantity',
                defaultMessage: '6月提车计划数'
            }),
            dataIndex: 'n6PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6DeliveryPlanQuantity',
                defaultMessage: '6月发货计划数'
            }),
            dataIndex: 'n6DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6CBUReceiveQuantity',
                defaultMessage: '6月新到货数'
            }),
            dataIndex: 'n6CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6OnTheWayNum',
                defaultMessage: '6月在途数'
            }),
            dataIndex: 'n6OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6CBUEndingInventory',
                defaultMessage: '6月末整车可销库存数'
            }),
            dataIndex: 'n6CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6TotalInventory',
                defaultMessage: '6月末总库存数'
            }),
            dataIndex: 'n6TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6StoreSaleRatio',
                defaultMessage: '6月总存销比'
            }),
            dataIndex: 'n6StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7SalesTargetQuantity',
                defaultMessage: '7月实销目标数'
            }),
            dataIndex: 'n7SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7PurchasePlanQuantity',
                defaultMessage: '7月提车计划数'
            }),
            dataIndex: 'n7PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7DeliveryPlanQuantity',
                defaultMessage: '7月发货计划数'
            }),
            dataIndex: 'n7DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7CBUReceiveQuantity',
                defaultMessage: '7月新到货数'
            }),
            dataIndex: 'n7CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7OnTheWayNum',
                defaultMessage: '7月在途数'
            }),
            dataIndex: 'n7OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7CBUEndingInventory',
                defaultMessage: '7月末整车可销库存数'
            }),
            dataIndex: 'n7CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7TotalInventory',
                defaultMessage: '7月末总库存数'
            }),
            dataIndex: 'n7TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7StoreSaleRatio',
                defaultMessage: '7月总存销比'
            }),
            dataIndex: 'n7StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8SalesTargetQuantity',
                defaultMessage: '8月实销目标数'
            }),
            dataIndex: 'n8SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8PurchasePlanQuantity',
                defaultMessage: '8月提车计划数'
            }),
            dataIndex: 'n8PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8DeliveryPlanQuantity',
                defaultMessage: '8月发货计划数'
            }),
            dataIndex: 'n8DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8CBUReceiveQuantity',
                defaultMessage: '8月新到货数'
            }),
            dataIndex: 'n8CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8OnTheWayNum',
                defaultMessage: '8月在途数'
            }),
            dataIndex: 'n8OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8CBUEndingInventory',
                defaultMessage: '8月末整车可销库存数'
            }),
            dataIndex: 'n8CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8TotalInventory',
                defaultMessage: '8月末总库存数'
            }),
            dataIndex: 'n8TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8StoreSaleRatio',
                defaultMessage: '8月总存销比'
            }),
            dataIndex: 'n8StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9SalesTargetQuantity',
                defaultMessage: '9月实销目标数'
            }),
            dataIndex: 'n9SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9PurchasePlanQuantity',
                defaultMessage: '9月提车计划数'
            }),
            dataIndex: 'n9PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9DeliveryPlanQuantity',
                defaultMessage: '9月发货计划数'
            }),
            dataIndex: 'n9DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9CBUReceiveQuantity',
                defaultMessage: '9月新到货数'
            }),
            dataIndex: 'n9CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9OnTheWayNum',
                defaultMessage: '9月在途数'
            }),
            dataIndex: 'n9OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9CBUEndingInventory',
                defaultMessage: '9月末整车可销库存数'
            }),
            dataIndex: 'n9CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9TotalInventory',
                defaultMessage: '9月末总库存数'
            }),
            dataIndex: 'n9TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9StoreSaleRatio',
                defaultMessage: '9月总存销比'
            }),
            dataIndex: 'n9StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10SalesTargetQuantity',
                defaultMessage: '10月实销目标数'
            }),
            dataIndex: 'n10SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10PurchasePlanQuantity',
                defaultMessage: '10月提车计划数'
            }),
            dataIndex: 'n10PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10DeliveryPlanQuantity',
                defaultMessage: '10月发货计划数'
            }),
            dataIndex: 'n10DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10CBUReceiveQuantity',
                defaultMessage: '10月新到货数'
            }),
            dataIndex: 'n10CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10OnTheWayNum',
                defaultMessage: '10月在途数'
            }),
            dataIndex: 'n10OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10CBUEndingInventory',
                defaultMessage: '10月末整车可销库存数'
            }),
            dataIndex: 'n10CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10TotalInventory',
                defaultMessage: '10月末总库存数'
            }),
            dataIndex: 'n10TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10StoreSaleRatio',
                defaultMessage: '10月总存销比'
            }),
            dataIndex: 'n10StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11SalesTargetQuantity',
                defaultMessage: '11月实销目标数'
            }),
            dataIndex: 'n11SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11PurchasePlanQuantity',
                defaultMessage: '11月提车计划数'
            }),
            dataIndex: 'n11PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11DeliveryPlanQuantity',
                defaultMessage: '11月发货计划数'
            }),
            dataIndex: 'n11DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11CBUReceiveQuantity',
                defaultMessage: '11月新到货数'
            }),
            dataIndex: 'n11CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11OnTheWayNum',
                defaultMessage: '11月在途数'
            }),
            dataIndex: 'n11OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11CBUEndingInventory',
                defaultMessage: '11月末整车可销库存数'
            }),
            dataIndex: 'n11CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11TotalInventory',
                defaultMessage: '11月末总库存数'
            }),
            dataIndex: 'n11TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11StoreSaleRatio',
                defaultMessage: '11月总存销比'
            }),
            dataIndex: 'n11StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12SalesTargetQuantity',
                defaultMessage: '12月实销目标数'
            }),
            dataIndex: 'n12SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12PurchasePlanQuantity',
                defaultMessage: '12月提车计划数'
            }),
            dataIndex: 'n12PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12DeliveryPlanQuantity',
                defaultMessage: '12月发货计划数'
            }),
            dataIndex: 'n12DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12CBUReceiveQuantity',
                defaultMessage: '12月新到货数'
            }),
            dataIndex: 'n12CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12OnTheWayNum',
                defaultMessage: '12月在途数'
            }),
            dataIndex: 'n12OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12CBUEndingInventory',
                defaultMessage: '12月末整车可销库存数'
            }),
            dataIndex: 'n12CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12TotalInventory',
                defaultMessage: '12月末总库存数'
            }),
            dataIndex: 'n12TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12StoreSaleRatio',
                defaultMessage: '12月总存销比'
            }),
            dataIndex: 'n12StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1SalesTargetQuantity',
                defaultMessage: '1月实销目标数'
            }),
            dataIndex: 'n13SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1PurchasePlanQuantity',
                defaultMessage: '1月提车计划数'
            }),
            dataIndex: 'n13PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1DeliveryPlanQuantity',
                defaultMessage: '1月发货计划数'
            }),
            dataIndex: 'n13DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1CBUReceiveQuantity',
                defaultMessage: '1月新到货数'
            }),
            dataIndex: 'n13CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1OnTheWayNum',
                defaultMessage: '1月在途数'
            }),
            dataIndex: 'n13OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1CBUEndingInventory',
                defaultMessage: '1月末整车可销库存数'
            }),
            dataIndex: 'n13CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1TotalInventory',
                defaultMessage: '1月末总库存数'
            }),
            dataIndex: 'n13TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1StoreSaleRatio',
                defaultMessage: '1月总存销比'
            }),
            dataIndex: 'n13StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2SalesTargetQuantity',
                defaultMessage: '2月实销目标数'
            }),
            dataIndex: 'n14SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2PurchasePlanQuantity',
                defaultMessage: '2月提车计划数'
            }),
            dataIndex: 'n14PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2DeliveryPlanQuantity',
                defaultMessage: '2月发货计划数'
            }),
            dataIndex: 'n14DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2CBUReceiveQuantity',
                defaultMessage: '2月新到货数'
            }),
            dataIndex: 'n14CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2OnTheWayNum',
                defaultMessage: '2月在途数'
            }),
            dataIndex: 'n14OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2CBUEndingInventory',
                defaultMessage: '2月末整车可销库存数'
            }),
            dataIndex: 'n14CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2TotalInventory',
                defaultMessage: '2月末总库存数'
            }),
            dataIndex: 'n14TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2StoreSaleRatio',
                defaultMessage: '2月总存销比'
            }),
            dataIndex: 'n14StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3SalesTargetQuantity',
                defaultMessage: '3月实销目标数'
            }),
            dataIndex: 'n15SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3PurchasePlanQuantity',
                defaultMessage: '3月提车计划数'
            }),
            dataIndex: 'n15PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3DeliveryPlanQuantity',
                defaultMessage: '3月发货计划数'
            }),
            dataIndex: 'n15DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3CBUReceiveQuantity',
                defaultMessage: '3月新到货数'
            }),
            dataIndex: 'n15CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3OnTheWayNum',
                defaultMessage: '3月在途数'
            }),
            dataIndex: 'n15OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3CBUEndingInventory',
                defaultMessage: '3月末整车可销库存数'
            }),
            dataIndex: 'n15CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3TotalInventory',
                defaultMessage: '3月末总库存数'
            }),
            dataIndex: 'n15TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3StoreSaleRatio',
                defaultMessage: '3月总存销比'
            }),
            dataIndex: 'n15StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4SalesTargetQuantity',
                defaultMessage: '4月实销目标数'
            }),
            dataIndex: 'n16SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4PurchasePlanQuantity',
                defaultMessage: '4月提车计划数'
            }),
            dataIndex: 'n16PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4DeliveryPlanQuantity',
                defaultMessage: '4月发货计划数'
            }),
            dataIndex: 'n16DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4CBUReceiveQuantity',
                defaultMessage: '4月新到货数'
            }),
            dataIndex: 'n16CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4OnTheWayNum',
                defaultMessage: '4月在途数'
            }),
            dataIndex: 'n16OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4CBUEndingInventory',
                defaultMessage: '4月末整车可销库存数'
            }),
            dataIndex: 'n16CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4TotalInventory',
                defaultMessage: '4月末总库存数'
            }),
            dataIndex: 'n16TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4StoreSaleRatio',
                defaultMessage: '4月总存销比'
            }),
            dataIndex: 'n16StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5SalesTargetQuantity',
                defaultMessage: '5月实销目标数'
            }),
            dataIndex: 'n17SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5PurchasePlanQuantity',
                defaultMessage: '5月提车计划数'
            }),
            dataIndex: 'n17PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5DeliveryPlanQuantity',
                defaultMessage: '5月发货计划数'
            }),
            dataIndex: 'n17DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5CBUReceiveQuantity',
                defaultMessage: '5月新到货数'
            }),
            dataIndex: 'n17CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5OnTheWayNum',
                defaultMessage: '5月在途数'
            }),
            dataIndex: 'n17OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5CBUEndingInventory',
                defaultMessage: '5月末整车可销库存数'
            }),
            dataIndex: 'n17CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5TotalInventory',
                defaultMessage: '5月末总库存数'
            }),
            dataIndex: 'n17TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5StoreSaleRatio',
                defaultMessage: '5月总存销比'
            }),
            dataIndex: 'n17StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6SalesTargetQuantity',
                defaultMessage: '6月实销目标数'
            }),
            dataIndex: 'n18SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6PurchasePlanQuantity',
                defaultMessage: '6月提车计划数'
            }),
            dataIndex: 'n18PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6DeliveryPlanQuantity',
                defaultMessage: '6月发货计划数'
            }),
            dataIndex: 'n18DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6CBUReceiveQuantity',
                defaultMessage: '6月新到货数'
            }),
            dataIndex: 'n18CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6OnTheWayNum',
                defaultMessage: '6月在途数'
            }),
            dataIndex: 'n18OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6CBUEndingInventory',
                defaultMessage: '6月末整车可销库存数'
            }),
            dataIndex: 'n18CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6TotalInventory',
                defaultMessage: '6月末总库存数'
            }),
            dataIndex: 'n18TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6StoreSaleRatio',
                defaultMessage: '6月总存销比'
            }),
            dataIndex: 'n18StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18StoreSaleRatio)
        }];
        const kd = [{
            title: formatMessage({
                id: 'detailPanel.colums.n1SalesTargetQuantity',
                defaultMessage: '1月实销目标数'
            }),
            dataIndex: 'n1SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1PurchasePlanQuantity',
                defaultMessage: '1月提车计划数'
            }),
            dataIndex: 'n1PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1DeliveryPlanQuantity',
                defaultMessage: '1月发货计划数'
            }),
            dataIndex: 'n1DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1KDReceiveQuantity',
                defaultMessage: '1月KD新到货数'
            }),
            dataIndex: 'n1CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1OnTheWayNum',
                defaultMessage: '1月在途数'
            }),
            dataIndex: 'n1OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1KDProductPlanQuantity',
                defaultMessage: '1月生产计划'
            }),
            dataIndex: 'n1KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1KDEndingInventory',
                defaultMessage: '1月末KD工厂可用库存'
            }),
            dataIndex: 'n1KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1CBUEndingInventory',
                defaultMessage: '1月末整车可销库存数'
            }),
            dataIndex: 'n1CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1TotalInventory',
                defaultMessage: '1月末总库存数'
            }),
            dataIndex: 'n1TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1StoreSaleRatio',
                defaultMessage: '1月总存销比'
            }),
            dataIndex: 'n1StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN1StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2SalesTargetQuantity',
                defaultMessage: '2月实销目标数'
            }),
            dataIndex: 'n2SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2PurchasePlanQuantity',
                defaultMessage: '2月提车计划数'
            }),
            dataIndex: 'n2PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2DeliveryPlanQuantity',
                defaultMessage: '2月发货计划数'
            }),
            dataIndex: 'n2DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2KDReceiveQuantity',
                defaultMessage: '2月KD新到货数'
            }),
            dataIndex: 'n2CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2OnTheWayNum',
                defaultMessage: '2月在途数'
            }),
            dataIndex: 'n2OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2KDProductPlanQuantity',
                defaultMessage: '2月生产计划'
            }),
            dataIndex: 'n2KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2KDEndingInventory',
                defaultMessage: '2月末KD工厂可用库存'
            }),
            dataIndex: 'n2KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2CBUEndingInventory',
                defaultMessage: '2月末整车可销库存数'
            }),
            dataIndex: 'n2CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2TotalInventory',
                defaultMessage: '2月末总库存数'
            }),
            dataIndex: 'n2TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2StoreSaleRatio',
                defaultMessage: '2月总存销比'
            }),
            dataIndex: 'n2StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN2StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3SalesTargetQuantity',
                defaultMessage: '3月实销目标数'
            }),
            dataIndex: 'n3SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3PurchasePlanQuantity',
                defaultMessage: '3月提车计划数'
            }),
            dataIndex: 'n3PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3DeliveryPlanQuantity',
                defaultMessage: '3月发货计划数'
            }),
            dataIndex: 'n3DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3KDReceiveQuantity',
                defaultMessage: '3月KD新到货数'
            }),
            dataIndex: 'n3CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3OnTheWayNum',
                defaultMessage: '3月在途数'
            }),
            dataIndex: 'n3OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3KDProductPlanQuantity',
                defaultMessage: '3月生产计划'
            }),
            dataIndex: 'n3KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3KDEndingInventory',
                defaultMessage: '3月末KD工厂可用库存'
            }),
            dataIndex: 'n3KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3CBUEndingInventory',
                defaultMessage: '3月末整车可销库存数'
            }),
            dataIndex: 'n3CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3TotalInventory',
                defaultMessage: '3月末总库存数'
            }),
            dataIndex: 'n3TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3StoreSaleRatio',
                defaultMessage: '3月总存销比'
            }),
            dataIndex: 'n3StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN3StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4SalesTargetQuantity',
                defaultMessage: '4月实销目标数'
            }),
            dataIndex: 'n4SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4PurchasePlanQuantity',
                defaultMessage: '4月提车计划数'
            }),
            dataIndex: 'n4PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4DeliveryPlanQuantity',
                defaultMessage: '4月发货计划数'
            }),
            dataIndex: 'n4DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4KDReceiveQuantity',
                defaultMessage: '4月KD新到货数'
            }),
            dataIndex: 'n4CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4OnTheWayNum',
                defaultMessage: '4月在途数'
            }),
            dataIndex: 'n4OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4KDProductPlanQuantity',
                defaultMessage: '4月生产计划'
            }),
            dataIndex: 'n4KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4KDEndingInventory',
                defaultMessage: '4月末KD工厂可用库存'
            }),
            dataIndex: 'n4KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4CBUEndingInventory',
                defaultMessage: '4月末整车可销库存数'
            }),
            dataIndex: 'n4CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4TotalInventory',
                defaultMessage: '4月末总库存数'
            }),
            dataIndex: 'n4TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4StoreSaleRatio',
                defaultMessage: '4月总存销比'
            }),
            dataIndex: 'n4StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN4StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5SalesTargetQuantity',
                defaultMessage: '5月实销目标数'
            }),
            dataIndex: 'n5SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5PurchasePlanQuantity',
                defaultMessage: '5月提车计划数'
            }),
            dataIndex: 'n5PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5DeliveryPlanQuantity',
                defaultMessage: '5月发货计划数'
            }),
            dataIndex: 'n5DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5KDReceiveQuantity',
                defaultMessage: '5月KD新到货数'
            }),
            dataIndex: 'n5CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5OnTheWayNum',
                defaultMessage: '5月在途数'
            }),
            dataIndex: 'n5OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5KDProductPlanQuantity',
                defaultMessage: '5月生产计划'
            }),
            dataIndex: 'n5KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5KDEndingInventory',
                defaultMessage: '5月末KD工厂可用库存'
            }),
            dataIndex: 'n5KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5CBUEndingInventory',
                defaultMessage: '5月末整车可销库存数'
            }),
            dataIndex: 'n5CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5TotalInventory',
                defaultMessage: '5月末总库存数'
            }),
            dataIndex: 'n5TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5StoreSaleRatio',
                defaultMessage: '5月总存销比'
            }),
            dataIndex: 'n5StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN5StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6SalesTargetQuantity',
                defaultMessage: '6月实销目标数'
            }),
            dataIndex: 'n6SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6PurchasePlanQuantity',
                defaultMessage: '6月提车计划数'
            }),
            dataIndex: 'n6PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6DeliveryPlanQuantity',
                defaultMessage: '6月发货计划数'
            }),
            dataIndex: 'n6DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6KDReceiveQuantity',
                defaultMessage: '6月KD新到货数'
            }),
            dataIndex: 'n6CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6OnTheWayNum',
                defaultMessage: '6月在途数'
            }),
            dataIndex: 'n6OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6KDProductPlanQuantity',
                defaultMessage: '6月生产计划'
            }),
            dataIndex: 'n6KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6KDEndingInventory',
                defaultMessage: '6月末KD工厂可用库存'
            }),
            dataIndex: 'n6KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6CBUEndingInventory',
                defaultMessage: '6月末整车可销库存数'
            }),
            dataIndex: 'n6CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6TotalInventory',
                defaultMessage: '6月末总库存数'
            }),
            dataIndex: 'n6TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6StoreSaleRatio',
                defaultMessage: '6月总存销比'
            }),
            dataIndex: 'n6StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN6StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7SalesTargetQuantity',
                defaultMessage: '7月实销目标数'
            }),
            dataIndex: 'n7SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7PurchasePlanQuantity',
                defaultMessage: '7月提车计划数'
            }),
            dataIndex: 'n7PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7DeliveryPlanQuantity',
                defaultMessage: '7月发货计划数'
            }),
            dataIndex: 'n7DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7KDReceiveQuantity',
                defaultMessage: '7月KD新到货数'
            }),
            dataIndex: 'n7CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7OnTheWayNum',
                defaultMessage: '7月在途数'
            }),
            dataIndex: 'n7OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7KDProductPlanQuantity',
                defaultMessage: '7月生产计划'
            }),
            dataIndex: 'n7KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7KDEndingInventory',
                defaultMessage: '7月末KD工厂可用库存'
            }),
            dataIndex: 'n7KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7CBUEndingInventory',
                defaultMessage: '7月末整车可销库存数'
            }),
            dataIndex: 'n7CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7TotalInventory',
                defaultMessage: '7月末总库存数'
            }),
            dataIndex: 'n7TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n7StoreSaleRatio',
                defaultMessage: '7月总存销比'
            }),
            dataIndex: 'n7StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN7StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8SalesTargetQuantity',
                defaultMessage: '8月实销目标数'
            }),
            dataIndex: 'n8SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8PurchasePlanQuantity',
                defaultMessage: '8月提车计划数'
            }),
            dataIndex: 'n8PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8DeliveryPlanQuantity',
                defaultMessage: '8月发货计划数'
            }),
            dataIndex: 'n8DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8KDReceiveQuantity',
                defaultMessage: '8月KD新到货数'
            }),
            dataIndex: 'n8CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8OnTheWayNum',
                defaultMessage: '8月在途数'
            }),
            dataIndex: 'n8OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8KDProductPlanQuantity',
                defaultMessage: '8月生产计划'
            }),
            dataIndex: 'n8KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8KDEndingInventory',
                defaultMessage: '8月末KD工厂可用库存'
            }),
            dataIndex: 'n8KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8CBUEndingInventory',
                defaultMessage: '8月末整车可销库存数'
            }),
            dataIndex: 'n8CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8TotalInventory',
                defaultMessage: '8月末总库存数'
            }),
            dataIndex: 'n8TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n8StoreSaleRatio',
                defaultMessage: '8月总存销比'
            }),
            dataIndex: 'n8StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN8StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9SalesTargetQuantity',
                defaultMessage: '9月实销目标数'
            }),
            dataIndex: 'n9SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9PurchasePlanQuantity',
                defaultMessage: '9月提车计划数'
            }),
            dataIndex: 'n9PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9DeliveryPlanQuantity',
                defaultMessage: '9月发货计划数'
            }),
            dataIndex: 'n9DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9KDReceiveQuantity',
                defaultMessage: '9月KD新到货数'
            }),
            dataIndex: 'n9CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9OnTheWayNum',
                defaultMessage: '9月在途数'
            }),
            dataIndex: 'n9OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9KDProductPlanQuantity',
                defaultMessage: '9月生产计划'
            }),
            dataIndex: 'n9KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9KDEndingInventory',
                defaultMessage: '9月末KD工厂可用库存'
            }),
            dataIndex: 'n9KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9CBUEndingInventory',
                defaultMessage: '9月末整车可销库存数'
            }),
            dataIndex: 'n9CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9TotalInventory',
                defaultMessage: '9月末总库存数'
            }),
            dataIndex: 'n9TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n9StoreSaleRatio',
                defaultMessage: '9月总存销比'
            }),
            dataIndex: 'n9StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN9StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10SalesTargetQuantity',
                defaultMessage: '10月实销目标数'
            }),
            dataIndex: 'n10SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10PurchasePlanQuantity',
                defaultMessage: '10月提车计划数'
            }),
            dataIndex: 'n10PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10DeliveryPlanQuantity',
                defaultMessage: '10月发货计划数'
            }),
            dataIndex: 'n10DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10KDReceiveQuantity',
                defaultMessage: '10月KD新到货数'
            }),
            dataIndex: 'n10CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10OnTheWayNum',
                defaultMessage: '10月在途数'
            }),
            dataIndex: 'n10OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10KDProductPlanQuantity',
                defaultMessage: '10月生产计划'
            }),
            dataIndex: 'n10KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10KDEndingInventory',
                defaultMessage: '10月末KD工厂可用库存'
            }),
            dataIndex: 'n10KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10CBUEndingInventory',
                defaultMessage: '10月末整车可销库存数'
            }),
            dataIndex: 'n10CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10TotalInventory',
                defaultMessage: '10月末总库存数'
            }),
            dataIndex: 'n10TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n10StoreSaleRatio',
                defaultMessage: '10月总存销比'
            }),
            dataIndex: 'n10StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN10StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11SalesTargetQuantity',
                defaultMessage: '11月实销目标数'
            }),
            dataIndex: 'n11SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11PurchasePlanQuantity',
                defaultMessage: '11月提车计划数'
            }),
            dataIndex: 'n11PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11DeliveryPlanQuantity',
                defaultMessage: '11月发货计划数'
            }),
            dataIndex: 'n11DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11KDReceiveQuantity',
                defaultMessage: '11月KD新到货数'
            }),
            dataIndex: 'n11CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11OnTheWayNum',
                defaultMessage: '11月在途数'
            }),
            dataIndex: 'n11OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11KDProductPlanQuantity',
                defaultMessage: '11月生产计划'
            }),
            dataIndex: 'n11KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11KDEndingInventory',
                defaultMessage: '11月末KD工厂可用库存'
            }),
            dataIndex: 'n11KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11CBUEndingInventory',
                defaultMessage: '11月末整车可销库存数'
            }),
            dataIndex: 'n11CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11TotalInventory',
                defaultMessage: '11月末总库存数'
            }),
            dataIndex: 'n11TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n11StoreSaleRatio',
                defaultMessage: '11月总存销比'
            }),
            dataIndex: 'n11StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN11StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12SalesTargetQuantity',
                defaultMessage: '12月实销目标数'
            }),
            dataIndex: 'n12SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12PurchasePlanQuantity',
                defaultMessage: '12月提车计划数'
            }),
            dataIndex: 'n12PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12DeliveryPlanQuantity',
                defaultMessage: '12月发货计划数'
            }),
            dataIndex: 'n12DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12KDReceiveQuantity',
                defaultMessage: '12月KD新到货数'
            }),
            dataIndex: 'n12CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12OnTheWayNum',
                defaultMessage: '12月在途数'
            }),
            dataIndex: 'n12OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12KDProductPlanQuantity',
                defaultMessage: '12月生产计划'
            }),
            dataIndex: 'n12KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12KDEndingInventory',
                defaultMessage: '12月末KD工厂可用库存'
            }),
            dataIndex: 'n12KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12CBUEndingInventory',
                defaultMessage: '12月末整车可销库存数'
            }),
            dataIndex: 'n12CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12TotalInventory',
                defaultMessage: '12月末总库存数'
            }),
            dataIndex: 'n12TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n12StoreSaleRatio',
                defaultMessage: '12月总存销比'
            }),
            dataIndex: 'n12StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN12StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1SalesTargetQuantity',
                defaultMessage: '1月实销目标数'
            }),
            dataIndex: 'n13SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1PurchasePlanQuantity',
                defaultMessage: '1月提车计划数'
            }),
            dataIndex: 'n13PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1DeliveryPlanQuantity',
                defaultMessage: '1月发货计划数'
            }),
            dataIndex: 'n13DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1KDReceiveQuantity',
                defaultMessage: '1月KD新到货数'
            }),
            dataIndex: 'n13CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1OnTheWayNum',
                defaultMessage: '1月在途数'
            }),
            dataIndex: 'n13OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1KDProductPlanQuantity',
                defaultMessage: '1月生产计划'
            }),
            dataIndex: 'n13KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1KDEndingInventory',
                defaultMessage: '1月末KD工厂可用库存'
            }),
            dataIndex: 'n13KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1CBUEndingInventory',
                defaultMessage: '1月末整车可销库存数'
            }),
            dataIndex: 'n13CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1TotalInventory',
                defaultMessage: '1月末总库存数'
            }),
            dataIndex: 'n13TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n1StoreSaleRatio',
                defaultMessage: '1月总存销比'
            }),
            dataIndex: 'n13StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN13StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2SalesTargetQuantity',
                defaultMessage: '2月实销目标数'
            }),
            dataIndex: 'n14SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2PurchasePlanQuantity',
                defaultMessage: '2月提车计划数'
            }),
            dataIndex: 'n14PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2DeliveryPlanQuantity',
                defaultMessage: '2月发货计划数'
            }),
            dataIndex: 'n14DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2KDReceiveQuantity',
                defaultMessage: '2月KD新到货数'
            }),
            dataIndex: 'n14CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2OnTheWayNum',
                defaultMessage: '2月在途数'
            }),
            dataIndex: 'n14OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2KDProductPlanQuantity',
                defaultMessage: '2月生产计划'
            }),
            dataIndex: 'n14KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2KDEndingInventory',
                defaultMessage: '2月末KD工厂可用库存'
            }),
            dataIndex: 'n14KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2CBUEndingInventory',
                defaultMessage: '2月末整车可销库存数'
            }),
            dataIndex: 'n14CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2TotalInventory',
                defaultMessage: '2月末总库存数'
            }),
            dataIndex: 'n14TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n2StoreSaleRatio',
                defaultMessage: '2月总存销比'
            }),
            dataIndex: 'n14StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN14StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3SalesTargetQuantity',
                defaultMessage: '3月实销目标数'
            }),
            dataIndex: 'n15SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3PurchasePlanQuantity',
                defaultMessage: '3月提车计划数'
            }),
            dataIndex: 'n15PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3DeliveryPlanQuantity',
                defaultMessage: '3月发货计划数'
            }),
            dataIndex: 'n15DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3KDReceiveQuantity',
                defaultMessage: '3月KD新到货数'
            }),
            dataIndex: 'n15CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3OnTheWayNum',
                defaultMessage: '3月在途数'
            }),
            dataIndex: 'n15OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3KDProductPlanQuantity',
                defaultMessage: '3月生产计划'
            }),
            dataIndex: 'n15KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3KDEndingInventory',
                defaultMessage: '3月末KD工厂可用库存'
            }),
            dataIndex: 'n15KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3CBUEndingInventory',
                defaultMessage: '3月末整车可销库存数'
            }),
            dataIndex: 'n15CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3TotalInventory',
                defaultMessage: '3月末总库存数'
            }),
            dataIndex: 'n15TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n3StoreSaleRatio',
                defaultMessage: '3月总存销比'
            }),
            dataIndex: 'n15StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN15StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4SalesTargetQuantity',
                defaultMessage: '4月实销目标数'
            }),
            dataIndex: 'n16SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4PurchasePlanQuantity',
                defaultMessage: '4月提车计划数'
            }),
            dataIndex: 'n16PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4DeliveryPlanQuantity',
                defaultMessage: '4月发货计划数'
            }),
            dataIndex: 'n16DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4KDReceiveQuantity',
                defaultMessage: '4月KD新到货数'
            }),
            dataIndex: 'n16CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4OnTheWayNum',
                defaultMessage: '4月在途数'
            }),
            dataIndex: 'n16OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4KDProductPlanQuantity',
                defaultMessage: '4月生产计划'
            }),
            dataIndex: 'n16KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4KDEndingInventory',
                defaultMessage: '4月末KD工厂可用库存'
            }),
            dataIndex: 'n16KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4CBUEndingInventory',
                defaultMessage: '4月末整车可销库存数'
            }),
            dataIndex: 'n16CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4TotalInventory',
                defaultMessage: '4月末总库存数'
            }),
            dataIndex: 'n16TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n4StoreSaleRatio',
                defaultMessage: '4月总存销比'
            }),
            dataIndex: 'n16StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN16StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5SalesTargetQuantity',
                defaultMessage: '5月实销目标数'
            }),
            dataIndex: 'n17SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5PurchasePlanQuantity',
                defaultMessage: '5月提车计划数'
            }),
            dataIndex: 'n17PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5DeliveryPlanQuantity',
                defaultMessage: '5月发货计划数'
            }),
            dataIndex: 'n17DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5KDReceiveQuantity',
                defaultMessage: '5月KD新到货数'
            }),
            dataIndex: 'n17CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5OnTheWayNum',
                defaultMessage: '5月在途数'
            }),
            dataIndex: 'n17OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5KDProductPlanQuantity',
                defaultMessage: '5月生产计划'
            }),
            dataIndex: 'n17KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5KDEndingInventory',
                defaultMessage: '5月末KD工厂可用库存'
            }),
            dataIndex: 'n17KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5CBUEndingInventory',
                defaultMessage: '5月末整车可销库存数'
            }),
            dataIndex: 'n17CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5TotalInventory',
                defaultMessage: '5月末总库存数'
            }),
            dataIndex: 'n17TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n5StoreSaleRatio',
                defaultMessage: '5月总存销比'
            }),
            dataIndex: 'n17StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN17StoreSaleRatio)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6SalesTargetQuantity',
                defaultMessage: '6月实销目标数'
            }),
            dataIndex: 'n18SalesTargetQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18SalesTargetQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6PurchasePlanQuantity',
                defaultMessage: '6月提车计划数'
            }),
            dataIndex: 'n18PurchasePlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18PurchasePlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6DeliveryPlanQuantity',
                defaultMessage: '6月发货计划数'
            }),
            dataIndex: 'n18DeliveryPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18DeliveryPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6KDReceiveQuantity',
                defaultMessage: '6月KD新到货数'
            }),
            dataIndex: 'n18CBUReceiveQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18CBUReceiveQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6OnTheWayNum',
                defaultMessage: '6月在途数'
            }),
            dataIndex: 'n18OnTheWayNum',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18OnTheWayNum)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6KDProductPlanQuantity',
                defaultMessage: '6月生产计划'
            }),
            dataIndex: 'n18KDProductPlanQuantity',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18KDProductPlanQuantity)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6KDEndingInventory',
                defaultMessage: '6月末KD工厂可用库存'
            }),
            dataIndex: 'n18KDEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18KDEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6CBUEndingInventory',
                defaultMessage: '6月末整车可销库存数'
            }),
            dataIndex: 'n18CBUEndingInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18CBUEndingInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6TotalInventory',
                defaultMessage: '6月末总库存数'
            }),
            dataIndex: 'n18TotalInventory',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18TotalInventory)
        }, {
            title: formatMessage({
                id: 'detailPanel.colums.n6StoreSaleRatio',
                defaultMessage: '6月总存销比'
            }),
            dataIndex: 'n18StoreSaleRatio',
            render: (t, r, i) => renderContent(t, r, i, data.sumN18StoreSaleRatio)
        }];
        if(data.businessType === 1) {
            if(data.submitMonth === 1 || data.submitMonth === 2 || data.submitMonth === 3)
                cbucolums.push(...cbu.slice(0, 72));
            else if(data.submitMonth === 4 || data.submitMonth === 5 || data.submitMonth === 6)
                cbucolums.push(...cbu.slice(0, 96));
            else if(data.submitMonth === 7 || data.submitMonth === 8 || data.submitMonth === 9)
                cbucolums.push(...cbu.slice(0, 120));
            else if(data.submitMonth === 10 || data.submitMonth === 11 || data.submitMonth === 12)
                cbucolums.push(...cbu);
        } else {
            if(data.submitMonth === 1 || data.submitMonth === 2 || data.submitMonth === 3)
                kdcolums.push(...kd.slice(0, 90));
            else if(data.submitMonth === 4 || data.submitMonth === 5 || data.submitMonth === 6)
                kdcolums.push(...kd.slice(0, 120));
            else if(data.submitMonth === 7 || data.submitMonth === 8 || data.submitMonth === 9)
                kdcolums.push(...kd.slice(0, 150));
            else if(data.submitMonth === 10 || data.submitMonth === 11 || data.submitMonth === 12)
                kdcolums.push(...kd);
        }
        
        return (
            <div>
                <Spin spinning={this.state.isFetching}>
                    <Card>
                        <DescriptionList size="large" title={<Row><Col span={12}>{
                            formatMessage({
                                id: 'detailPanel.card.picking',
                                defaultMessage: '进销存表信息'
                            })
                        }</Col>
                        <Col className={`col-align-right ${styles.detail}`} span={12}>{operations}</Col></Row>}>
                            {initEnumData.brands && initEnumData.brands.length > 1 &&
                                <DescriptionList.Description term={formatMessage({
                                    id: 'detail.operation.brandName',
                                    defaultMessage: '品牌'
                                })}>{data.brandCode}({data.brandName})
                                </DescriptionList.Description>}
                            <DescriptionList.Description term={formatMessage({
                                id: 'detail.operation.marketDepartment',
                                defaultMessage: '大区'
                            })}>{data.marketDepartmentName}
                            </DescriptionList.Description>
                            <DescriptionList.Description term={formatMessage({
                                id: 'detailPanel.operation.country',
                                defaultMessage: '国家'
                            })}>{data.countryChineseName}
                            </DescriptionList.Description>
                            <DescriptionList.Description term={formatMessage({
                                id: 'detail.operation.dealerCode',
                                defaultMessage: '总代'
                            })}>{data.dealerCode}({data.dealerName})
                            </DescriptionList.Description>
                            <DescriptionList.Description term={formatMessage({
                                id: 'detail.operation.businessType',
                                defaultMessage: '业务类型'
                            })}>{conventEnumValueToString(saleOrderBusinessType, data.businessType)}
                            </DescriptionList.Description>
                            <DescriptionList.Description term={formatMessage({
                                id: 'detailPanel.operation.submitYear',
                                defaultMessage: '提报年份'
                            })}>{data.submitYear}
                            </DescriptionList.Description>
                            <DescriptionList.Description term={formatMessage({
                                id: 'detailPanel.operation.submitMonth',
                                defaultMessage: '提报月份'
                            })}>{data.submitMonth}
                            </DescriptionList.Description>
                        </DescriptionList>
                    </Card>
                    <Card>
                        <DescriptionList size="large" title={<Row><Col span={12}>{formatMessage({
                            id: 'detailPanel.table.salesTarget',
                            defaultMessage: '实销图表'
                        })}</Col></Row>}>
                            {this.chartsContent(salesTarget, colorlist)}
                        </DescriptionList>
                    </Card>
                    <Card>
                        <DescriptionList size="large" title={<Row><Col span={12}>{formatMessage({
                            id: 'detailPanel.table.purchasePlan',
                            defaultMessage: '提车图表'
                        })}</Col></Row>}>
                            {this.chartsContent(purchasePlan, colorlist)}
                        </DescriptionList>
                    </Card>
                    <Card>
                        <DescriptionList size="large" title={<Row><Col span={12}>{formatMessage({
                            id: 'detailPanel.table.saleRatio',
                            defaultMessage: '存销比图表'
                        })}</Col></Row>}>
                            {this.chartsContent(saleRatio, colorlist)}
                        </DescriptionList>
                    </Card>
                    <Card title={<Row><Col span={12}>{formatMessage({
                        id: 'detailPanel.table.details',
                        defaultMessage: '产品表格属性列表'
                    })}</Col></Row>}>
                        {data.businessType === 1
                            ? <Card title={<Row><Col span={6}>{formatMessage({
                                id: 'detailPanel.table.cbu',
                                defaultMessage: 'CBU清单列表'
                            })}</Col></Row>}>
                                <Table
                                    className="white-space-nowrap"
                                    columns={cbucolums}
                                    rowKey="id"
                                    pagination={false}
                                    dataSource={details}
                                    {...TABLE} />
                            </Card>
                            : <Card title={<Row><Col span={6}>{formatMessage({
                                id: 'detailPanel.table.kd',
                                defaultMessage: 'KD清单列表'
                            })}</Col></Row>}>
                                <Table
                                    className="white-space-nowrap"
                                    columns={kdcolums}
                                    rowKey="id"
                                    pagination={false}
                                    dataSource={details}
                                    {...TABLE} />
                            </Card>}
                    </Card>
                </Spin>
                <div className="page-toolbar">
                    <Button type="primary" onClick={this.props.onCancel}>{formatMessage({
                        id: 'detailPanel.operation.onCancel',
                        defaultMessage: '返回'
                    })}</Button>
                </div>
            </div>
        );
    }
}

DetailPanel.propTypes = {
    history: PropTypes.object,
    id: PropTypes.string,
    initEnumData: PropTypes.any,
    permissions: PropTypes.array,
    successReturn: PropTypes.func,
    onCancel: PropTypes.func
};

import {connect} from 'react-redux';
import {tableSearch} from './actions';
import {createSelector} from 'reselect';
import selectorFactory from 'Shared/utils/immutableToJsSelectorFactory';
const getPermissions = selectorFactory(['page', 'domainData', 'permission', 'data']);
const getinitEnumData = createSelector(
    state => state.getIn(['page', 'domainData', 'init']),
    init => {
        const initData = init.toJS();
        const brands = initData.brands ? ListTypeCL(initData.brands) : [];
        return {
            brands, // 品牌
            initData
        };
    }
);
const mapStateToProps = state => ({
    permissions: getPermissions(state),
    initEnumData: getinitEnumData(state),
});

const mapDispatchToProps = (dispatch, props) => ({
    successReturn: () => {
        dispatch(tableSearch());
        props.history.push(routes.query.url());
    },
    onCancel: () => {
        props.history.push(routes.query.url());
    },
});
export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(DetailPanel));
